package com.mdb.open.trade.config;
/*
 * Copyright (C), 2017-2019 澳发科技(MDB)
 * FileName: CustomerSequenceEnum.java
 * Author:   符楚
 * Date:     2019-07-05 12:01
 * History:
 * <author>          <time>          <version>          <desc>
 * 符楚               2019-07-05          V1.00             新建
 * -----------------------------------------------------------
 * 作者姓名           修改时间           版本号            描述
 */

import com.mdb.bc.cache.sequence.util.SequenceEnum;
import com.mdb.bc.utils.ExpireTypeEnum;

/**
 * 客户序列枚举对象<br>
 * <br>
 *
 * @author 符楚
 * @Date 2019-07-05 12:01
 */
public enum CustomerSequenceEnum implements SequenceEnum {

    /**
     * 商户号
     * 规则: MNO+时间戳+随机码
     * 说明: 创建商户时，系统为二级客户分配的唯一标识，与统一社会信用代码（证件号）一一对应。一个证件号在MDB系统只存在一个商户。
     * 举例说明:
     * ---------------------------------------
     * MNO2019062510136521
     * 时间戳取到分：201906251013
     * 随机码：4位阿拉伯数字
     * ---------------------------------------
     */
    MERCHANT_NO("商户编号") {
        @Override
        public String getDefaultPrefixStart() {
            return "MNO";
        }
    },

    /**
     * 商户唯一ID
     * 规则: MID+时间戳+随机码
     * 说明: 一个二级客户可能在不同外综平台存在不同ID，用户ID在单一平台具有唯一性。（用户ID是系统生成之后给平台查看的）
     * 举例说明:
     * ---------------------------------------
     * MID20190625000001
     * 时间戳取到天：20190625000001
     * 随机码：6位阿拉伯数字
     * ---------------------------------------
     */
    MERCHANT_ID("商户ID") {
        @Override
        public String getDefaultPrefixStart() {
            return "MID";
        }
    },

    ;

    String text;

    CustomerSequenceEnum(String text) {
        this.text = text;
    }

    @Override
    public ExpireTypeEnum getExpireType() {
        return ExpireTypeEnum.DAY;
    }

    @Override
    public String getSystemKey() {
        return "cnt-customer";
    }

    @Override
    public String getBusinessKey() {
        return this.name();
    }


}
